//
//  Date+Extension.swift
//  Weibo
//
//  Created by 黄亦寒 on 2016/9/27.
//  Copyright © 2016年 HM. All rights reserved.
//

import UIKit
extension Date {
   static func sinaDate(createAt:String) -> Date {
        //执行到此说明时间字符串不为空
        let dt = DateFormatter()
        //指定格式化方式
        dt.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
        //指定本地化信息
        dt.locale = Locale(identifier:"en_US")
        //把字符串转换成时间对象
        let createAtDate = dt.date(from: createAt)
        
        return createAtDate!
    }
    
    var sinaDateString:String {
        let dt = DateFormatter()
        //指定本地化信息
        dt.locale = Locale(identifier:"en_US")
        
        if isThisYear(createAtDate: self) {
            print("是今年")
        //获取日历对象
        let currentCalender = Calendar.current
        //判断发微博时间是否是今天，如果是今天就判断分钟和小时
        if currentCalender.isDateInToday(self) {
            let timeInterVal:TimeInterval = abs((self.timeIntervalSinceNow))
            if timeInterVal < 60 {
                //如果小于60秒
                return "刚刚"
            }else if timeInterVal < 3600 {
                //如果小于一小时
                //得到分钟数
                let result = timeInterVal / 60
                return "\(Int(result))分钟前"
            }else {
                //得到小时数
                let result = timeInterVal / 3600
                return "\(Int(result))小时前"
                
            }
            
        }else if currentCalender.isDateInYesterday(self) {
            //如果是昨天
            dt.dateFormat = "昨天 HH:mm"
        }else {
            //其他时间
            dt.dateFormat = "MM-dd HH:mm"
        }
        
    }else{
    print("不是今年")
    dt.dateFormat = "yyyy-MM-dd HH:mm"
    }
    
    return dt.string(from: self)
}
    
        //根据时间对象判断是否是今年
        private func isThisYear(createAtDate:Date) -> Bool {
            let dt = DateFormatter()
            //指定格式化方式
            dt.dateFormat = "yyyy"
            //指定本地化信息
            dt.locale = Locale(identifier:"en_US")
            //获取发微博时间的年份
            let createAtYear = dt.string(from: createAtDate)
            //获取当前时间的年份
            let currentDateYear = dt.string(from: Date())
            //判断时间年份是否相同
            return createAtYear == currentDateYear
            
            
        }
    
    
}

